module nade.random;

import std.random;


private static Mt19937 gen;

void initRandom()
{
	gen.seed(cast(uint)unpredictableSeed);
}

ubyte random()
{
	return cast(ubyte)uniform(cast(uint)0, cast(uint)256);
}

int random(int u)
{
	if(u == 0) return u;
	return uniform(0, u);
}

int random(uint u)
{
	if(u == 0) return u;
	return uniform(cast(uint)0, u);
}

int random(int l, int u)
{
	if(l == u) return u;
	return uniform(l, u);
}

int random(uint l, uint u)
{
	if(l == u) return u;
	return uniform(l, u);
}

int random(int l, uint u)
{
	if(l == u) return u;
	return uniform(l, cast(int)u);
}

int random(uint l, int u)
{
	if(l == u) return u;
	return uniform(cast(int)l, u);
}

double random(double l, double u)
{
	if(l == u) return u;
	return uniform(l, u);
}
